package main

import (
	"encoding/json"
	"fmt"
	carbon "gitee.com/go_888/extends/carbon"
	"log"
	"time"
)

func main() {
	//-------------------------设置全局默认值
	carbon.X设置全局默认布局模板(carbon.X常量_布局模板_DateTime)
	carbon.X设置全局默认时区(carbon.X常量_时区_中国)
	carbon.X设置全局默认语言区域("zh-CN")
	carbon.X设置全局默认周起始日期(carbon.X常量_星期_周一)
	carbon.X设置全局默认一周周末日期([]carbon.X星期{carbon.X常量_星期_周六, carbon.X常量_星期_周日})

	carbon.X设置全局默认值(carbon.X默认值{
		Layout:       carbon.X常量_布局模板_DateTime,
		Timezone:     carbon.X常量_时区_中国,
		Locale:       "zh-CN",
		WeekStartsAt: carbon.X常量_星期_周一,
		WeekendDays:  []carbon.X星期{carbon.X常量_星期_周六, carbon.X常量_星期_周日},
	})

	//-------------------------Carbon和time.Time互转
	// 将标准 time.Time 转换成 Carbon
	carbon.X创建(time.Now())
	// 将 Carbon 转换成标准 time.Time
	carbon.X创建并按当前时间().X取Gosdk时间()

	//或
	// 将标准 time.Time 转换成 Carbon
	loc, _ := time.LoadLocation(carbon.X常量_时区_中国)
	carbon.X创建并按gosdk时间(time.Now().In(loc))
	// 将 Carbon 转换成标准 time.Time
	carbon.X创建并按当前时间(carbon.X常量_时区_中国).X取Gosdk时间()

	//-------------------------昨天、今天、明天
	// 今天此刻
	fmt.Printf("%s", carbon.X创建并按当前时间()) // 2020-08-05 13:14:15
	carbon.X创建并按当前时间().String()          // 2020-08-05 13:14:15
	carbon.X创建并按当前时间().X取完整文本时间()        // 2020-08-05 13:14:15.999999999 +0800 CST
	carbon.X创建并按当前时间().X取文本时间()          // 2020-08-05 13:14:15
	// 今天日期
	carbon.X创建并按当前时间().X取文本日期() // 2020-08-05
	// 今天时间
	carbon.X创建并按当前时间().X取文本时分秒() // 13:14:15
	// 指定时区的今天此刻
	carbon.X创建并按当前时间(carbon.X常量_时区_纽约).X取文本时间() // 2020-08-05 14:14:15
	// 今天秒精度时间戳
	carbon.X创建并按当前时间().X取秒时间戳() // 1596604455
	// 今天毫秒精度时间戳
	carbon.X创建并按当前时间().X取毫秒时间戳() // 1596604455999
	// 今天微秒精度时间戳
	carbon.X创建并按当前时间().X取微秒时间戳() // 1596604455999999
	// 今天纳秒精度时间戳
	carbon.X创建并按当前时间().X取纳秒时间戳() // 1596604455999999999

	// 昨天此刻
	fmt.Printf("%s", carbon.X创建并按昨天时间()) // 2020-08-04 13:14:15
	carbon.X创建并按昨天时间().String()          // 2020-08-04 13:14:15
	carbon.X创建并按昨天时间().X取完整文本时间()        // 2020-08-04 13:14:15.999999999 +0800 CST
	carbon.X创建并按昨天时间().X取文本时间()          // 2020-08-04 13:14:15
	// 昨天日期
	carbon.X创建并按昨天时间().X取文本日期() // 2020-08-04
	// 昨天时间
	carbon.X创建并按昨天时间().X取文本时分秒() // 13:14:15
	// 指定时区的昨天此刻
	carbon.X创建并按昨天时间(carbon.X常量_时区_纽约).X取文本时间() // 2020-08-04 14:14:15
	// 昨天秒精度时间戳
	carbon.X创建并按昨天时间().X取秒时间戳() // 1596518055
	// 昨天毫秒精度时间戳
	carbon.X创建并按昨天时间().X取毫秒时间戳() // 1596518055999
	// 昨天微秒精度时间戳
	carbon.X创建并按昨天时间().X取微秒时间戳() // 1596518055999999
	// 昨天纳秒精度时间戳
	carbon.X创建并按昨天时间().X取纳秒时间戳() // 1596518055999999999

	// 明天此刻
	fmt.Printf("%s", carbon.X创建并按明天时间()) // 2020-08-06 13:14:15
	carbon.X创建并按明天时间().String()          // 2020-08-06 13:14:15
	carbon.X创建并按明天时间().X取完整文本时间()        // 2020-08-06 13:14:15.999999999 +0800 CST
	carbon.X创建并按明天时间().X取文本时间()          // 2020-08-06 13:14:15
	// 明天日期
	carbon.X创建并按明天时间().X取文本日期() // 2020-08-06
	// 明天时间
	carbon.X创建并按明天时间().X取文本时分秒() // 13:14:15
	// 指定时区的明天此刻
	carbon.X创建并按明天时间(carbon.X常量_时区_纽约).X取文本时间() // 2020-08-06 14:14:15
	// 明天秒精度时间戳
	carbon.X创建并按明天时间().X取秒时间戳() // 1596690855
	// 明天毫秒精度时间戳
	carbon.X创建并按明天时间().X取毫秒时间戳() //1596690855999
	// 明天微秒精度时间戳
	carbon.X创建并按明天时间().X取微秒时间戳() // 1596690855999999
	// 明天纳秒精度时间戳
	carbon.X创建并按明天时间().X取纳秒时间戳() // 1596690855999999999

	//-------------------------创建Carbon实例
	// 从秒精度时间戳创建 Carbon 实例
	carbon.X创建并按秒时间戳(-1).X取完整文本时间()         // 1970-01-01 07:59:59 +0800 CST
	carbon.X创建并按秒时间戳(0).X取完整文本时间()          // 1970-01-01 08:00:00 +0800 CST
	carbon.X创建并按秒时间戳(1).X取完整文本时间()          // 1970-01-01 08:00:01 +0800 CST
	carbon.X创建并按秒时间戳(1596604455).X取完整文本时间() // 2020-08-05 13:14:15 +0800 CST
	// 从毫秒精度时间戳创建 Carbon 实例
	carbon.X创建并按毫秒时间戳(1596604455999).X取完整文本时间() // 2020-08-05 13:14:15.999 +0800 CST
	// 从微秒精度时间戳创建 Carbon 实例
	carbon.X创建并按微秒时间戳(1596604455999999).X取完整文本时间() // 2020-08-05 13:14:15.999999 +0800 CST
	// 从纳秒精度时间戳创建 Carbon 实例
	carbon.X创建并按纳秒秒时间戳(1596604455999999999).X取完整文本时间() // 2020-08-05 13:14:15.999999999 +0800 CST

	// 从年、月、日、时、分、秒创建 Carbon 实例
	carbon.X创建并按年月日时分秒(2020, 8, 5, 13, 14, 15).X取完整文本时间() // 2020-08-05 13:14:15 +0800 CST
	// 从年、月、日、时、分、秒、毫秒创建 Carbon 实例
	carbon.X创建并按年月日时分秒毫秒(2020, 8, 5, 13, 14, 15, 999).X取完整文本时间() // 2020-08-05 13:14:15.999 +0800 CST
	// 从年、月、日、时、分、秒、微秒创建 Carbon 实例
	carbon.X创建并按年月日时分秒微秒(2020, 8, 5, 13, 14, 15, 999999).X取完整文本时间() // 2020-08-05 13:14:15.999999 +0800 CST
	// 从年、月、日、时、分、秒、纳秒创建 Carbon 实例
	carbon.X创建并按年月日时分秒纳秒(2020, 8, 5, 13, 14, 15, 999999999).X取完整文本时间() // 2020-08-05 13:14:15.999999999 +0800 CST

	// 从年、月、日创建 Carbon 实例
	carbon.X创建并按年月日(2020, 8, 5).X取完整文本时间() // 2020-08-05 00:00:00 +0800 CST
	// 从年、月、日、毫秒创建 Carbon 实例
	carbon.X创建并按年月日毫秒(2020, 8, 5, 999).X取完整文本时间() // 2020-08-05 00:00:00.999 +0800 CST
	// 从年、月、日、微秒创建 Carbon 实例
	carbon.X创建并按年月日微秒(2020, 8, 5, 999999).X取完整文本时间() // 2020-08-05 00:00:00.999999 +0800 CST
	// 从年、月、日、纳秒创建 Carbon 实例
	carbon.X创建并按年月日纳秒(2020, 8, 5, 999999999).X取完整文本时间() // 2020-08-05 00:00:00.999999999 +0800 CST

	// 从时、分、秒创建 Carbon 实例(年月日默认为当前年月日)
	carbon.X创建并按时分秒(13, 14, 15).X取完整文本时间() // 2020-08-05 13:14:15 +0800 CST
	// 从时、分、秒、毫秒创建 Carbon 实例(年月日默认为当前年月日)
	carbon.X创建并按时分秒毫秒(13, 14, 15, 999).X取完整文本时间() // 2020-08-05 13:14:15.999 +0800 CST
	// 从时、分、秒、微秒创建 Carbon 实例(年月日默认为当前年月日)
	carbon.X创建并按时分秒微秒(13, 14, 15, 999999).X取完整文本时间() // 2020-08-05 13:14:15.999999 +0800 CST
	// 从时、分、秒、纳秒创建 Carbon 实例(年月日默认为当前年月日)
	carbon.X创建并按时分秒纳秒(13, 14, 15, 999999999).X取完整文本时间() // 2020-08-05 13:14:15.999999999 +0800 CST

	//-------------------------将时间字符串解析成Carbon实例
	carbon.X解析文本时间("").X取文本时间()                    // 空字符串
	carbon.X解析文本时间("0").X取文本时间()                   // 空字符串
	carbon.X解析文本时间("xxx").X取文本时间()                 // 空字符串
	carbon.X解析文本时间("00:00:00").X取文本时间()            // 空字符串
	carbon.X解析文本时间("0000-00-00").X取文本时间()          // 空字符串
	carbon.X解析文本时间("0000-00-00 00:00:00").X取文本时间() // 空字符串

	carbon.X解析文本时间("now").X取完整文本时间()       // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("yesterday").X取完整文本时间() // 2020-08-04 13:14:15 +0800 CST
	carbon.X解析文本时间("tomorrow").X取完整文本时间()  // 2020-08-06 13:14:15 +0800 CST

	carbon.X解析文本时间("2020").X取完整文本时间()                 // 2020-01-01 00:00:00 +0800 CST
	carbon.X解析文本时间("2020-8").X取完整文本时间()               // 2020-08-01 00:00:00 +0800 CST
	carbon.X解析文本时间("2020-08").X取完整文本时间()              // 2020-08-01 00:00:00 +0800 CST
	carbon.X解析文本时间("2020-8-5").X取完整文本时间()             // 2020-08-05 00:00:00 +0800 CST
	carbon.X解析文本时间("2020-8-05").X取完整文本时间()            // 2020-08-05 00:00:00 +0800 CST
	carbon.X解析文本时间("2020-08-05").X取完整文本时间()           // 2020-08-05 00:00:00 +0800 CST
	carbon.X解析文本时间("2020-08-05.999").X取完整文本时间()       // 2020-08-05 00:00:00.999 +0800 CST
	carbon.X解析文本时间("2020-08-05.999999").X取完整文本时间()    // 2020-08-05 00:00:00.999999 +0800 CST
	carbon.X解析文本时间("2020-08-05.999999999").X取完整文本时间() // 2020-08-05 00:00:00.999999999 +0800 CST

	carbon.X解析文本时间("2020-8-5 13:14:15").X取完整文本时间()             // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-8-05 13:14:15").X取完整文本时间()            // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-08-5 13:14:15").X取完整文本时间()            // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-08-05 13:14:15").X取完整文本时间()           // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-08-05 13:14:15.999").X取完整文本时间()       // 2020-08-05 13:14:15.999 +0800 CST
	carbon.X解析文本时间("2020-08-05 13:14:15.999999").X取完整文本时间()    // 2020-08-05 13:14:15.999999 +0800 CST
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取完整文本时间() // 2020-08-05 13:14:15.999999999 +0800 CST

	carbon.X解析文本时间("2020-8-5T13:14:15+08:00").X取完整文本时间()             // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-8-05T13:14:15+08:00").X取完整文本时间()            // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-08-05T13:14:15+08:00").X取完整文本时间()           // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-08-05T13:14:15.999+08:00").X取完整文本时间()       // 2020-08-05 13:14:15.999 +0800 CST
	carbon.X解析文本时间("2020-08-05T13:14:15.999999+08:00").X取完整文本时间()    // 2020-08-05 13:14:15.999999 +0800 CST
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取完整文本时间() // 2020-08-05 13:14:15.999999999 +0800 CST

	carbon.X解析文本时间("20200805").X取完整文本时间()                       // 2020-08-05 00:00:00 +0800 CST
	carbon.X解析文本时间("20200805131415").X取完整文本时间()                 // 2020-08-05 13:14:15 +0800 CST
	carbon.X解析文本时间("20200805131415.999").X取完整文本时间()             // 2020-08-05 13:14:15.999 +0800 CST
	carbon.X解析文本时间("20200805131415.999999").X取完整文本时间()          // 2020-08-05 13:14:15.999999 +0800 CST
	carbon.X解析文本时间("20200805131415.999999999").X取完整文本时间()       // 2020-08-05 13:14:15.999999999 +0800 CST
	carbon.X解析文本时间("20200805131415.999+08:00").X取完整文本时间()       // 2020-08-05 13:14:15.999 +0800 CST
	carbon.X解析文本时间("20200805131415.999999+08:00").X取完整文本时间()    // 2020-08-05 13:14:15.999999 +0800 CST
	carbon.X解析文本时间("20200805131415.999999999+08:00").X取完整文本时间() // 2020-08-05 13:14:15.999999999 +0800 CST

	carbon.X解析文本时间("2022-03-08T03:01:14-07:00").X取完整文本时间() // 2022-03-08 18:01:14 +0800 CST
	carbon.X解析文本时间("2022-03-08T10:01:14Z").X取完整文本时间()      // 2022-03-08 18:01:14 +0800 CST

	//-------------------------通过一个确认的布局模板将时间字符串解析成Carbon实例
	carbon.X解析时间并按模板("2020|08|05 13|14|15", "2006|01|02 15|04|05").X取文本时间()                   // 2020-08-05 13:14:15
	carbon.X解析时间并按模板("It is 2020-08-05 13:14:15", "It is 2006-01-02 15:04:05").X取文本时间()       // 2020-08-05 13:14:15
	carbon.X解析时间并按模板("今天是 2020年08月05日13时14分15秒", "今天是 2006年01月02日15时04分05秒").X取文本时间()         // 2020-08-05 13:14:15
	carbon.X解析时间并按模板("2020-08-05 13:14:15", "2006-01-02 15:04:05", carbon.X常量_时区_东京).X取文本时间() // 2020-08-05 14:14:15

	//-------------------------通过多个模糊的 布局模板 将时间字符串解析成 Carbon 实例
	carbon.X解析时间并按模板s("2020|08|05 13|14|15", []string{"2006|01|02 15|04|05", "2006|1|2 3|4|5"}).X取文本时间()   // 2020-08-05 13:14:15
	carbon.X解析时间并按模板s("2020|08|05 13|14|15", []string{"2006|01|02 15|04|05", "2006|1|2 3|4|5"}).X取当前布局模板() // 2006|01|02 15|04|05

	//-------------------------通过一个确认的 格式模板 将时间字符串解析成 Carbon 实例
	carbon.X解析时间并按格式("2020|08|05 13|14|15", "Y|m|d H|i|s").X取文本时间()                     // 2020-08-05 13:14:15
	carbon.X解析时间并按格式("It is 2020-08-05 13:14:15", "\\I\\t \\i\\s Y-m-d H:i:s").X取文本时间() // 2020-08-05 13:14:15
	carbon.X解析时间并按格式("今天是 2020年08月05日13时14分15秒", "今天是 Y年m月d日H时i分s秒").X取文本时间()           // 2020-08-05 13:14:15
	carbon.X解析时间并按格式("2020-08-05 13:14:15", "Y-m-d H:i:s", carbon.X常量_时区_东京).X取文本时间()   // 2020-08-05 14:14:15

	//-------------------------通过多个模糊的 格式模板 将时间字符串解析成 Carbon 实例
	carbon.X解析文本时间并按格式s("2020|08|05 13|14|15", []string{"Y|m|d H|i|s", "y|m|d h|i|s"}).X取文本时间()   // 2020-08-05 13:14:15
	carbon.X解析文本时间并按格式s("2020|08|05 13|14|15", []string{"Y|m|d H|i|s", "y|m|d h|i|s"}).X取当前布局模板() // 2006|01|02 15|04|05

	//-------------------------时间冻结
	now := carbon.X解析文本时间("2020-08-05")
	carbon.X设置测试时间(now)

	carbon.X是否为测试时间()                           // true
	carbon.X创建并按当前时间().X取文本日期()                 // 2020-08-05
	carbon.X创建并按昨天时间().X取文本日期()                 // 2020-08-04
	carbon.X创建并按明天时间().X取文本日期()                 // 2020-08-05
	carbon.X创建并按当前时间().X取可读格式时间差()              // just now
	carbon.X创建并按昨天时间().X取可读格式时间差()              // 1 day ago
	carbon.X创建并按明天时间().X取可读格式时间差()              // 1 day from now
	carbon.X解析文本时间("2020-10-05").X取可读格式时间差()    // 2 months from now
	now.X取可读格式时间差(carbon.X解析文本时间("2020-10-05")) // 2 months before

	carbon.X清除测试时间()
	carbon.X是否为测试时间() // false

	//-------------------------时间边界
	// 本世纪开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取世纪开始时间().X取文本时间() // 2000-01-01 00:00:00
	// 本世纪结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取世纪结束时间().X取文本时间() // 2999-12-31 23:59:59

	// 本年代开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年代开始时间().X取文本时间() // 2020-01-01 00:00:00
	carbon.X解析文本时间("2021-08-05 13:14:15").X取年代开始时间().X取文本时间() // 2020-01-01 00:00:00
	carbon.X解析文本时间("2029-08-05 13:14:15").X取年代开始时间().X取文本时间() // 2020-01-01 00:00:00
	// 本年代结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年代结束时间().X取文本时间() // 2029-12-31 23:59:59
	carbon.X解析文本时间("2021-08-05 13:14:15").X取年代结束时间().X取文本时间() // 2029-12-31 23:59:59
	carbon.X解析文本时间("2029-08-05 13:14:15").X取年代结束时间().X取文本时间() // 2029-12-31 23:59:59

	// 本年开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年开始时间().X取文本时间() // 2020-01-01 00:00:00
	// 本年结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年结束时间().X取文本时间() // 2020-12-31 23:59:59

	// 本季度开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取季度开始时间().X取文本时间() // 2020-07-01 00:00:00
	// 本季度结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取季度结束时间().X取文本时间() // 2020-09-30 23:59:59

	// 本月开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取月开始时间().X取文本时间() // 2020-08-01 00:00:00
	// 本月结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取月结束时间().X取文本时间() // 2020-08-31 23:59:59

	// 本周开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取周开始时间().X取文本时间()                             // 2020-08-02 00:00:00
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置一周起始日期(carbon.X常量_星期_周日).X取周开始时间().X取文本时间() // 2020-08-02 00:00:00
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置一周起始日期(carbon.X常量_星期_周一).X取周开始时间().X取文本时间() // 2020-08-03 00:00:00
	// 本周结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取周结束时间().X取文本时间()                             // 2020-08-08 23:59:59
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置一周起始日期(carbon.X常量_星期_周日).X取周结束时间().X取文本时间() // 2020-08-08 23:59:59
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置一周起始日期(carbon.X常量_星期_周一).X取周结束时间().X取文本时间() // 2020-08-09 23:59:59

	// 本日开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取日开始时间().X取文本时间() // 2020-08-05 00:00:00
	// 本日结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取日结束时间().X取文本时间() // 2020-08-05 23:59:59

	// 本小时开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取小时开始时间().X取文本时间() // 2020-08-05 13:00:00
	// 本小时结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取小时结束时间().X取文本时间() // 2020-08-05 13:59:59

	// 本分钟开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取分钟开始时间().X取文本时间() // 2020-08-05 13:14:00
	// 本分钟结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取分钟结束时间().X取文本时间() // 2020-08-05 13:14:59

	// 本秒开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取秒开始时间().X取完整文本时间() // 2020-08-05 13:14:15 +0800 CST
	// 本秒结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取秒结束时间().X取完整文本时间() // 2020-08-05 13:14:15.999999999 +0800 CST

	//-------------------------时间旅行
	// 三个世纪后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N个世纪(3).X取文本时间() // 2320-02-29 13:14:15
	// 三个世纪后(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N个世纪并不溢出月份(3).X取文本时间() // 2320-02-29 13:14:15
	// 一个世纪后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加1个世纪().X取文本时间() // 2120-02-29 13:14:15
	// 一个世纪后(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加1个世纪并不溢出月份().X取文本时间() // 2120-02-29 13:14:15
	// 三个世纪前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N个世纪(3).X取文本时间() // 1720-02-29 13:14:15
	// 三个世纪前(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N个世纪并不溢出月份(3).X取文本时间() // 1720-02-29 13:14:15
	// 一个世纪前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少1个世纪().X取文本时间() // 1920-02-29 13:14:15
	// 一世纪前(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少1个世纪并不溢出月份().X取文本时间() // 1920-02-29 13:14:15

	// 三个年代后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N个年代(3).X取文本时间() // 2050-03-01 13:14:15
	// 三个年代后(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N个年代并不溢出月份(3).X取文本时间() // 2050-02-28 13:14:15
	// 一个年代后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加1个年代().X取文本时间() // 2030-03-01 13:14:15
	// 一个年代后(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加1个年代并不溢出月份().X取文本时间() // 2030-02-28 13:14:15
	// 三个年代前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N个年代(3).X取文本时间() // 1990-03-01 13:14:15
	// 三个年代前(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N个年代并不溢出月份(3).X取文本时间() // 1990-02-28 13:14:15
	// 一个年代前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少1个年代().X取文本时间() // 2010-03-01 13:14:15
	// 一个年代前(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少1个年代并不溢出月份().X取文本时间() // 2010-02-28 13:14:15

	// 三年后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N年(3).X取文本时间() // 2023-03-01 13:14:15
	// 三年后(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N年并不溢出月份(3).X取文本时间() // 2023-02-28 13:14:15
	// 一年后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加1年().X取文本时间() // 2021-03-01 13:14:15
	// 一年后(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加1年并不溢出月份().X取文本时间() // 2021-02-28 13:14:15
	// 三年前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N年(3).X取文本时间() // 2017-03-01 13:14:15
	// 三年前(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N年并不溢出月份(3).X取文本时间() // 2017-02-28 13:14:15
	// 一年前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少1年().X取文本时间() // 2019-03-01 13:14:15
	// 一年前(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少1年并不溢出月份().X取文本时间() // 2019-02-28 13:14:15

	// 三个季度后
	carbon.X解析文本时间("2019-05-31 13:14:15").X增加N个季度(3).X取文本时间() // 2020-03-02 13:14:15
	// 三个季度后(月份不溢出)
	carbon.X解析文本时间("2019-05-31 13:14:15").X增加N个季度并不溢出月份(3).X取文本时间() // 2020-02-29 13:14:15
	// 一个季度后
	carbon.X解析文本时间("2019-11-30 13:14:15").X增加1个季度().X取文本时间() // 2020-03-01 13:14:15
	// 一个季度后(月份不溢出)
	carbon.X解析文本时间("2019-11-30 13:14:15").X增加1个季度并不溢出月份().X取文本时间() // 2020-02-29 13:14:15
	// 三个季度前
	carbon.X解析文本时间("2019-08-31 13:14:15").X减少N个季度(3).X取文本时间() // 2019-03-03 13:14:15
	// 三个季度前(月份不溢出)
	carbon.X解析文本时间("2019-08-31 13:14:15").X减少N个季度并不溢出月份(3).X取文本时间() // 2019-02-28 13:14:15
	// 一个季度前
	carbon.X解析文本时间("2020-05-31 13:14:15").X减少1个季度().X取文本时间() // 2020-03-02 13:14:15
	// 一个季度前(月份不溢出)
	carbon.X解析文本时间("2020-05-31 13:14:15").X减少1个季度并不溢出月份().X取文本时间() // 2020-02-29 13:14:15

	// 三个月后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N个月(3).X取文本时间() // 2020-05-29 13:14:15
	// 三个月后(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N个月并不溢出月份(3).X取文本时间() // 2020-05-29 13:14:15
	// 一个月后
	carbon.X解析文本时间("2020-01-31 13:14:15").X增加1个月().X取文本时间() // 2020-03-02 13:14:15
	// 一个月后(月份不溢出)
	carbon.X解析文本时间("2020-01-31 13:14:15").X增加1个月并不溢出月份().X取文本时间() // 2020-02-29 13:14:15
	// 三个月前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N个月(3).X取文本时间() // 2019-11-29 13:14:15
	// 三个月前(月份不溢出)
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N个月并不溢出月份(3).X取文本时间() // 2019-11-29 13:14:15
	// 一个月前
	carbon.X解析文本时间("2020-03-31 13:14:15").X减少1个月().X取文本时间() // 2020-03-02 13:14:15
	// 一个月前(月份不溢出)
	carbon.X解析文本时间("2020-03-31 13:14:15").X减少1个月并不溢出月份().X取文本时间() // 2020-02-29 13:14:15

	// 三周后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加N周(3).X取文本时间() // 2020-03-21 13:14:15
	// 一周后
	carbon.X解析文本时间("2020-02-29 13:14:15").X增加1周().X取文本时间() // 2020-03-07 13:14:15
	// 三周前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少N周(3).X取文本时间() // 2020-02-08 13:14:15
	// 一周前
	carbon.X解析文本时间("2020-02-29 13:14:15").X减少1周().X取文本时间() // 2020-02-22 13:14:15

	// 三天后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加N天(3).X取文本时间() // 2020-08-08 13:14:15
	// 一天后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加1天().X取文本时间() // 2020-08-05 13:14:15
	// 三天前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少N天(3).X取文本时间() // 2020-08-02 13:14:15
	// 一天前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少1天().X取文本时间() // 2020-08-04 13:14:15

	// 三小时后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加N小时(3).X取文本时间() // 2020-08-05 16:14:15
	// 二小时半后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加时长("2.5h").X取文本时间()  // 2020-08-05 15:44:15
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加时长("2h30m").X取文本时间() // 2020-08-05 15:44:15
	// 一小时后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加1小时().X取文本时间() // 2020-08-05 14:14:15
	// 三小时前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少N小时(3).X取文本时间() // 2020-08-05 10:14:15
	// 二小时半前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少时长("2.5h").X取文本时间()  // 2020-08-05 10:44:15
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少时长("2h30m").X取文本时间() // 2020-08-05 10:44:15
	// 一小时前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少1小时().X取文本时间() // 2020-08-05 12:14:15

	// 三分钟后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加N分钟(3).X取文本时间() // 2020-08-05 13:17:15
	// 二分钟半后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加时长("2.5m").X取文本时间()  // 2020-08-05 13:16:45
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加时长("2m30s").X取文本时间() // 2020-08-05 13:16:45
	// 一分钟后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加1分钟().X取文本时间() // 2020-08-05 13:15:15
	// 三分钟前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少N分钟(3).X取文本时间() // 2020-08-05 13:11:15
	// 二分钟半前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少时长("2.5m").X取文本时间()  // 2020-08-05 13:11:45
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少时长("2m30s").X取文本时间() // 2020-08-05 13:11:45
	// 一分钟前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少1分钟().X取文本时间() // 2020-08-05 13:13:15

	// 三秒钟后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加N秒(3).X取文本时间() // 2020-08-05 13:14:18
	// 二秒钟半后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加时长("2.5s").X取文本时间() // 2020-08-05 13:14:17
	// 一秒钟后
	carbon.X解析文本时间("2020-08-05 13:14:15").X增加1秒().X取文本时间() // 2020-08-05 13:14:16
	// 三秒钟前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少N秒(3).X取文本时间() // 2020-08-05 13:14:12
	// 二秒钟半前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少时长("2.5s").X取文本时间() // 2020-08-05 13:14:12
	// 一秒钟前
	carbon.X解析文本时间("2020-08-05 13:14:15").X减少1秒().X取文本时间() // 2020-08-05 13:14:14

	// 三毫秒后
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X增加N毫秒(3).X取完整文本时间() // 2020-08-05 13:14:15.225222222 +0800 CST
	// 一毫秒后
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X增加1毫秒().X取完整文本时间() // 2020-08-05 13:14:15.223222222 +0800 CST
	// 三毫秒前
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X减少N毫秒(3).X取完整文本时间() // 2020-08-05 13:14:15.219222222 +0800 CST
	// 一毫秒前
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X减少1毫秒().X取完整文本时间() // 2020-08-05 13:14:15.221222222 +0800 CST

	// 三微秒后
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X增加N微秒(3).X取完整文本时间() // 2020-08-05 13:14:15.222225222 +0800 CST
	// 一微秒后
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X增加1微秒().X取完整文本时间() // 2020-08-05 13:14:15.222223222 +0800 CST
	// 三微秒前
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X减少N微秒(3).X取完整文本时间() // 2020-08-05 13:14:15.222219222 +0800 CST
	// 一微秒前
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X减少1微秒().X取完整文本时间() // 2020-08-05 13:14:15.222221222 +0800 CST

	// 三纳秒后
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X增加N纳秒(3).X取完整文本时间() // 2020-08-05 13:14:15.222222225 +0800 CST
	// 一纳秒后
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X增加1纳秒().X取完整文本时间() // 2020-08-05 13:14:15.222222223 +0800 CST
	// 三纳秒前
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X减少N纳秒(3).X取完整文本时间() // 2020-08-05 13:14:15.222222219 +0800 CST
	// 一纳秒前
	carbon.X解析文本时间("2020-08-05 13:14:15.222222222").X减少1纳秒().X取完整文本时间() // 2020-08-05 13:14:15.222222221 +0800 CST

	//-------------------------时间差值
	// 相差多少年
	carbon.X解析文本时间("2021-08-05 13:14:15").X取相差年(carbon.X解析文本时间("2020-08-05 13:14:15")) // -1
	// 相差多少年（绝对值）
	carbon.X解析文本时间("2021-08-05 13:14:15").X取相差年并取绝对值(carbon.X解析文本时间("2020-08-05 13:14:15")) // 1

	// 相差多少月
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差月(carbon.X解析文本时间("2020-07-05 13:14:15")) // -1
	// 相差多少月（绝对值）
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差月并取绝对值(carbon.X解析文本时间("2020-07-05 13:14:15")) // 1

	// 相差多少周
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差周(carbon.X解析文本时间("2020-07-28 13:14:15")) // -1
	// 相差多少周（绝对值）
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差周并取绝对值(carbon.X解析文本时间("2020-07-28 13:14:15")) // 1

	// 相差多少天
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差天(carbon.X解析文本时间("2020-08-04 13:14:15")) // -1
	// 相差多少天（绝对值）
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差天并取绝对值(carbon.X解析文本时间("2020-08-04 13:14:15")) // 1

	// 相差多少小时
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差小时(carbon.X解析文本时间("2020-08-05 12:14:15")) // -1
	// 相差多少小时（绝对值）
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差小时并取绝对值(carbon.X解析文本时间("2020-08-05 12:14:15")) // 1

	// 相差多少分
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差分钟(carbon.X解析文本时间("2020-08-05 13:13:15")) // -1
	// 相差多少分（绝对值）
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差分钟并取绝对值(carbon.X解析文本时间("2020-08-05 13:13:15")) // 1

	// 相差多少秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差秒(carbon.X解析文本时间("2020-08-05 13:14:14")) // -1
	// 相差多少秒（绝对值）
	carbon.X解析文本时间("2020-08-05 13:14:15").X取相差秒并取绝对值(carbon.X解析文本时间("2020-08-05 13:14:14")) // 1

	// 相差字符串
	carbon.X创建并按当前时间().X取相差文本()                // just now
	carbon.X创建并按当前时间().X增加N年并不溢出月份(1).X取相差文本() // -1 year
	carbon.X创建并按当前时间().X减少N年并不溢出月份(1).X取相差文本() // 1 year
	// 相差字符串（绝对值）
	carbon.X创建并按当前时间().X取相差文本并取绝对值(carbon.X创建并按当前时间())                // just now
	carbon.X创建并按当前时间().X增加N年并不溢出月份(1).X取相差文本并取绝对值(carbon.X创建并按当前时间()) // 1 year
	carbon.X创建并按当前时间().X减少N年并不溢出月份(1).X取相差文本并取绝对值(carbon.X创建并按当前时间()) // 1 year

	// 相差时长
	now = carbon.X创建并按当前时间()
	now.X取相差时长(now).String()          // 0s
	now.X增加1小时().X取相差时长(now).String() // 1h0m0s
	now.X减少1小时().X取相差时长(now).String() // -1h0m0s
	// 相差时长（绝对值）
	now.X取相差时长并取绝对值(now).String()          // 0s
	now.X增加1小时().X取相差时长并取绝对值(now).String() // 1h0m0s
	now.X减少1小时().X取相差时长并取绝对值(now).String() // 1h0m0s

	// 对人类友好的可读格式时间差
	carbon.X解析文本时间("2020-08-05 13:14:15").X取可读格式时间差() // just now
	carbon.X解析文本时间("2019-08-05 13:14:15").X取可读格式时间差() // 1 year ago
	carbon.X解析文本时间("2018-08-05 13:14:15").X取可读格式时间差() // 2 years ago
	carbon.X解析文本时间("2021-08-05 13:14:15").X取可读格式时间差() // 1 year from now
	carbon.X解析文本时间("2022-08-05 13:14:15").X取可读格式时间差() // 2 years from now

	carbon.X解析文本时间("2020-08-05 13:14:15").X取可读格式时间差(carbon.X创建并按当前时间()) // 1 year before
	carbon.X解析文本时间("2019-08-05 13:14:15").X取可读格式时间差(carbon.X创建并按当前时间()) // 2 years before
	carbon.X解析文本时间("2018-08-05 13:14:15").X取可读格式时间差(carbon.X创建并按当前时间()) // 1 year after
	carbon.X解析文本时间("2022-08-05 13:14:15").X取可读格式时间差(carbon.X创建并按当前时间()) // 2 years after

	//-------------------------时间极值
	c1 := carbon.X解析文本时间("2023-03-28")
	c2 := carbon.X解析文本时间("2023-04-16")
	// 返回最近的 Carbon 实例
	carbon.X解析文本时间("2023-04-01").X取最接近实例(c1, c2) // c1
	// 返回最远的 Carbon 实例
	carbon.X解析文本时间("2023-04-01").X取最远实例(c1, c2) // c2

	yesterday := carbon.X创建并按昨天时间()
	today := carbon.X创建并按当前时间()
	tomorrow := carbon.X创建并按明天时间()
	// 返回最大的 Carbon 实例
	carbon.X取最大实例(yesterday, today, tomorrow) // tomorrow
	// 返回最小的 Carbon 实例
	carbon.X取最小实例(yesterday, today, tomorrow) // yesterday

	// 返回 Carbon 的最大值
	carbon.X取最大时间().X取完整文本时间() // 9999-12-31 23:59:59.999999999 +0000 UTC
	// 返回 Carbon 的最小值
	carbon.X取最小时间().X取完整文本时间() // 0001-01-01 00:00:00 +0000 UTC

	// 返回 Duration 的最大值
	carbon.X取最大时长().Seconds() // 9.223372036854776e+09
	// 返回 Duration 的最小值
	carbon.X取最小时长().Seconds() // -9.223372036854776e+09

	//-------------------------时间判断
	// 是否有错误
	carbon.X解析文本时间("0001-01-01 00:00:00 +0000 UTC").X是否有错误() // false
	carbon.X创建().X是否有错误()                                    // false
	carbon.X解析文本时间("").X是否有错误()                              // false
	carbon.X解析文本时间("0").X是否有错误()                             // true
	carbon.X解析文本时间("xxx").X是否有错误()                           // true
	carbon.X解析文本时间("2020-08-05").X是否有错误()                    // false
	carbon.X创建并按秒时间戳(0).X是否有错误()                             // false

	// 是否是 nil
	carbon.X解析文本时间("0001-01-01 00:00:00 +0000 UTC").X是否为空时间() // false
	carbon.X创建().X是否为空时间()                                    // false
	carbon.X解析文本时间("").X是否为空时间()                              // true
	carbon.X解析文本时间("0").X是否为空时间()                             // false
	carbon.X解析文本时间("xxx").X是否为空时间()                           // false
	carbon.X创建().X是否为空时间()                                    // false
	carbon.X创建并按秒时间戳(0).X是否为空时间()                             // false

	// 是否是零值时间(0001-01-01 00:00:00 +0000 UTC)
	carbon.X解析文本时间("0001-01-01 00:00:00 +0000 UTC").X是否为零值时间() // true
	carbon.X创建().X是否为零值时间()                                    // true
	carbon.X创建并按秒时间戳(0).X是否为零值时间()                             // false
	carbon.X解析文本时间("").X是否为零值时间()                              // false
	carbon.X解析文本时间("xxx").X是否为零值时间()                           // false
	carbon.X解析文本时间("0").X是否为零值时间()                             // false
	carbon.X解析文本时间("0000-00-00 00:00:00").X是否为零值时间()           // false
	carbon.X解析文本时间("0000-00-00").X是否为零值时间()                    // false
	carbon.X解析文本时间("00:00:00").X是否为零值时间()                      // false
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为零值时间()           // false
	carbon.X解析文本时间("2020-08-05").X是否为零值时间()                    // false
	carbon.X解析文本时间("2020-08-05").X设置时区("xxx").X是否为零值时间()       // false

	//// 是否是空值
	//carbon.Parse("0001-01-01 00:00:00 +0000 UTC").IsEmpty() // true
	//carbon.NewCarbon().IsEmpty()                            // false
	//carbon.CreateFromTimestamp(0).IsEmpty()                 // false
	//carbon.Parse("").IsEmpty()                              // true
	//carbon.Parse("xxx").IsEmpty()                           // false
	//carbon.Parse("0").IsEmpty()                             // false
	//carbon.Parse("0000-00-00 00:00:00").IsEmpty()           // false
	//carbon.Parse("0000-00-00").IsEmpty()                    // false
	//carbon.Parse("00:00:00").IsEmpty()                      // false
	//carbon.Parse("2020-08-05 00:00:00").IsEmpty()           // false
	//carbon.Parse("2020-08-05").IsEmpty()                    // false
	//carbon.Parse("2020-08-05").SetTimezone("xxx").IsEmpty() // false

	// 是否是 UNIX 纪元时间(1970-01-01 00:00:00 +0000 UTC)
	carbon.X解析文本时间("1970-01-01 00:00:00 +0000 UTC").X是否为UNIX时间() // true
	carbon.X创建并按秒时间戳(0).X是否为UNIX时间()                             // true
	carbon.X解析文本时间("0001-01-01 00:00:00 +0000 UTC").X是否为UNIX时间() // false
	carbon.X创建().X是否为UNIX时间()                                    // false
	carbon.X解析文本时间("").X是否为UNIX时间()                              // false
	carbon.X解析文本时间("0").X是否为UNIX时间()                             // false
	carbon.X解析文本时间("xxx").X是否为UNIX时间()                           // false
	carbon.X解析文本时间("0000-00-00 00:00:00").X是否为UNIX时间()           // false
	carbon.X解析文本时间("0000-00-00").X是否为UNIX时间()                    // false
	carbon.X解析文本时间("00:00:00").X是否为UNIX时间()                      // false
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为UNIX时间()           // false
	carbon.X解析文本时间("2020-08-05").X是否为UNIX时间()                    // false
	carbon.X解析文本时间("2020-08-05").X设置时区("xxx").X是否为UNIX时间()       // false

	// 是否是有效时间
	carbon.X解析文本时间("0001-01-01 00:00:00 +0000 UTC").X是否为有效时间()
	carbon.X创建并按秒时间戳(0).X是否为有效时间()                       // true
	carbon.X创建().X是否为有效时间()                              // true
	carbon.X解析文本时间("").X是否为有效时间()                        // false
	carbon.X解析文本时间("0").X是否为有效时间()                       // false
	carbon.X解析文本时间("xxx").X是否为有效时间()                     // false
	carbon.X解析文本时间("0000-00-00 00:00:00").X是否为有效时间()     // false
	carbon.X解析文本时间("0000-00-00").X是否为有效时间()              // false
	carbon.X解析文本时间("00:00:00").X是否为有效时间()                // false
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为有效时间()     // true
	carbon.X解析文本时间("2020-08-05").X是否为有效时间()              // true
	carbon.X解析文本时间("2020-08-05").X设置时区("xxx").X是否为有效时间() // false

	// 是否是无效时间
	carbon.X解析文本时间("0001-01-01 00:00:00 +0000 UTC").X是否为无效时间() // false
	carbon.X创建并按秒时间戳(0).X是否为无效时间()                             // false
	carbon.X创建().X是否为无效时间()                                    // false
	carbon.X解析文本时间("").X是否为无效时间()                              // true
	carbon.X解析文本时间("0").X是否为无效时间()                             // true
	carbon.X解析文本时间("xxx").X是否为无效时间()                           // true
	carbon.X解析文本时间("0000-00-00 00:00:00").X是否为无效时间()           // true
	carbon.X解析文本时间("0000-00-00").X是否为无效时间()                    // true
	carbon.X解析文本时间("00:00:00").X是否为无效时间()                      // true
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为无效时间()           // false
	carbon.X解析文本时间("2020-08-05").X是否为无效时间()                    // false
	carbon.X解析文本时间("2020-08-05").X设置时区("xxx").X是否为无效时间()       // true

	// 是否是夏令时
	carbon.X解析文本时间("").X是否为夏令时()                                 // false
	carbon.X解析文本时间("0").X是否为夏令时()                                // false
	carbon.X解析文本时间("xxx").X是否为夏令时()                              // false
	carbon.X解析文本时间("0000-00-00 00:00:00").X是否为夏令时()              // false
	carbon.X解析文本时间("0000-00-00").X是否为夏令时()                       // false
	carbon.X解析文本时间("00:00:00").X是否为夏令时()                         // false
	carbon.X解析文本时间("2023-01-01", "Australia/Brisbane").X是否为夏令时() // false
	carbon.X解析文本时间("2023-01-01", "Australia/Sydney").X是否为夏令时()   // true

	// 是否是上午
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为上午() // true
	carbon.X解析文本时间("2020-08-05 08:00:00").X是否为上午() // true
	carbon.X解析文本时间("2020-08-05 12:00:00").X是否为上午() // false
	carbon.X解析文本时间("2020-08-05 13:00:00").X是否为上午() // false
	// 是否是下午
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为下午() // false
	carbon.X解析文本时间("2020-08-05 08:00:00").X是否为下午() // false
	carbon.X解析文本时间("2020-08-05 12:00:00").X是否为下午() // true
	carbon.X解析文本时间("2020-08-05 13:00:00").X是否为下午() // true

	// 是否是当前时间
	carbon.X创建并按当前时间().X是否为当前时间() // true
	// 是否是未来时间
	carbon.X创建并按明天时间().X是否为未来时间() // true
	// 是否是过去时间
	carbon.X创建并按昨天时间().X是否为过去时间() // true

	// 是否是闰年
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为闰年() // true
	// 是否是长年
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为长年() // true

	// 是否是一月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为一月() // false
	// 是否是二月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为二月() // false
	// 是否是三月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为三月() // false
	// 是否是四月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为四月() // false
	// 是否是五月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为五月() // false
	// 是否是六月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为六月() // false
	// 是否是七月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为七月() // false
	// 是否是八月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为八月() // false
	// 是否是九月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为九月() // true
	// 是否是十月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为十月() // false
	// 是否是十一月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为十一月() // false
	// 是否是十二月
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为十二月() // false

	// 是否是周一
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周一() // false
	// 是否是周二
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周二() // true
	// 是否是周三
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周三() // false
	// 是否是周四
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周四() // false
	// 是否是周五
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周五() // false
	// 是否是周六
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周六() // false
	// 是否是周日
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周日() // false

	// 是否是工作日
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为工作日() // false
	// 是否是周末
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为周末() // true

	// 是否是昨天
	carbon.X解析文本时间("2020-08-04 13:14:15").X是否为昨天() // true
	carbon.X解析文本时间("2020-08-04 00:00:00").X是否为昨天() // true
	carbon.X解析文本时间("2020-08-04").X是否为昨天()          // true
	// 是否是今天
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为今天() // true
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为今天() // true
	carbon.X解析文本时间("2020-08-05").X是否为今天()          // true
	// 是否是明天
	carbon.X解析文本时间("2020-08-06 13:14:15").X是否为明天() // true
	carbon.X解析文本时间("2020-08-06 00:00:00").X是否为明天() // true
	carbon.X解析文本时间("2020-08-06").X是否为明天()          // true

	// 是否是同一世纪
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一世纪(carbon.X解析文本时间("3020-08-05 13:14:15")) // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一世纪(carbon.X解析文本时间("2099-08-05 13:14:15")) // true
	// 是否是同一年代
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一年代(carbon.X解析文本时间("2030-08-05 13:14:15")) // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一年代(carbon.X解析文本时间("2120-08-05 13:14:15")) // true
	// 是否是同一年
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为同一年(carbon.X解析文本时间("2021-08-05 13:14:15")) // false
	carbon.X解析文本时间("2020-01-01 00:00:00").X是否为同一年(carbon.X解析文本时间("2020-12-31 13:14:15")) // true
	// 是否是同一季节
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为同一季节(carbon.X解析文本时间("2020-09-05 13:14:15")) // false
	carbon.X解析文本时间("2020-01-01 00:00:00").X是否为同一季节(carbon.X解析文本时间("2021-01-31 13:14:15")) // true
	// 是否是同一月
	carbon.X解析文本时间("2020-01-01 00:00:00").X是否为同一月(carbon.X解析文本时间("2021-01-31 13:14:15")) // false
	carbon.X解析文本时间("2020-01-01 00:00:00").X是否为同一月(carbon.X解析文本时间("2020-01-31 13:14:15")) // true
	// 是否是同一天
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一天(carbon.X解析文本时间("2021-08-05 13:14:15")) // false
	carbon.X解析文本时间("2020-08-05 00:00:00").X是否为同一天(carbon.X解析文本时间("2020-08-05 13:14:15")) // true
	// 是否是同一小时
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一小时(carbon.X解析文本时间("2021-08-05 13:14:15")) // false
	carbon.X解析文本时间("2020-08-05 13:00:00").X是否为同一小时(carbon.X解析文本时间("2020-08-05 13:14:15")) // true
	// 是否是同一分钟
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一分钟(carbon.X解析文本时间("2021-08-05 13:14:15")) // false
	carbon.X解析文本时间("2020-08-05 13:14:00").X是否为同一分钟(carbon.X解析文本时间("2020-08-05 13:14:15")) // true
	// 是否是同一秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一秒(carbon.X解析文本时间("2021-08-05 13:14:15")) // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为同一秒(carbon.X解析文本时间("2020-08-05 13:14:15")) // true

	// 是否大于
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否大于(carbon.X解析文本时间("2020-08-04 13:14:15"))      // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否大于(carbon.X解析文本时间("2020-08-05 13:14:15"))      // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较(">", carbon.X解析文本时间("2020-08-04 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较(">", carbon.X解析文本时间("2020-08-05 13:14:15")) // false

	// 是否小于
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否小于(carbon.X解析文本时间("2020-08-06 13:14:15"))      // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否小于(carbon.X解析文本时间("2020-08-05 13:14:15"))      // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("<", carbon.X解析文本时间("2020-08-06 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("<", carbon.X解析文本时间("2020-08-05 13:14:15")) // false

	// 是否等于
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否等于(carbon.X解析文本时间("2020-08-05 13:14:15"))      // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否等于(carbon.X解析文本时间("2020-08-05 13:14:00"))      // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("=", carbon.X解析文本时间("2020-08-05 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("=", carbon.X解析文本时间("2020-08-05 13:14:00")) // false

	// 是否不等于
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否不等于(carbon.X解析文本时间("2020-08-06 13:14:15"))      // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否不等于(carbon.X解析文本时间("2020-08-05 13:14:15"))      // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("!=", carbon.X解析文本时间("2020-08-06 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("<>", carbon.X解析文本时间("2020-08-05 13:14:15")) // false

	// 是否大于等于
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否大于等于(carbon.X解析文本时间("2020-08-04 13:14:15"))     // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否大于等于(carbon.X解析文本时间("2020-08-05 13:14:15"))     // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较(">=", carbon.X解析文本时间("2020-08-04 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较(">=", carbon.X解析文本时间("2020-08-05 13:14:15")) // true

	// 是否小于等于
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否小于等于(carbon.X解析文本时间("2020-08-06 13:14:15"))     // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否小于等于(carbon.X解析文本时间("2020-08-05 13:14:15"))     // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("<=", carbon.X解析文本时间("2020-08-06 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X时间比较("<=", carbon.X解析文本时间("2020-08-05 13:14:15")) // true

	// 是否在两个时间之间(不包括这两个时间)
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间(carbon.X解析文本时间("2020-08-05 13:14:15"), carbon.X解析文本时间("2020-08-06 13:14:15")) // false
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间(carbon.X解析文本时间("2020-08-04 13:14:15"), carbon.X解析文本时间("2020-08-06 13:14:15")) // true

	// 是否在两个时间之间(包括开始时间)
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间并含开始时间(carbon.X解析文本时间("2020-08-05 13:14:15"), carbon.X解析文本时间("2020-08-06 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间并含开始时间(carbon.X解析文本时间("2020-08-04 13:14:15"), carbon.X解析文本时间("2020-08-06 13:14:15")) // true

	// 是否在两个时间之间(包括结束时间)
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间并含结束时间(carbon.X解析文本时间("2020-08-04 13:14:15"), carbon.X解析文本时间("2020-08-05 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间并含结束时间(carbon.X解析文本时间("2020-08-04 13:14:15"), carbon.X解析文本时间("2020-08-06 13:14:15")) // true

	// 是否在两个时间之间(包括这两个时间)
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间并含开始结束时间(carbon.X解析文本时间("2020-08-05 13:14:15"), carbon.X解析文本时间("2020-08-06 13:14:15")) // true
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否在之间并含开始结束时间(carbon.X解析文本时间("2020-08-04 13:14:15"), carbon.X解析文本时间("2020-08-05 13:14:15")) // true

	//-------------------------时间设置
	// 设置时区
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置时区(carbon.X常量_时区_UTC).X取完整文本时间() // 2020-08-05 13:14:15 +0000 UTC
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置时区(carbon.X常量_时区_中国).X取完整文本时间()  // 2020-08-05 21:14:15 +0800 CST
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置时区(carbon.X常量_时区_东京).X取完整文本时间()  // 2020-08-05 22:14:15 +0900 JST

	// 设置位置
	utc, _ := time.LoadLocation(carbon.X常量_时区_UTC)
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置位置(utc).X取完整文本时间() // 2020-08-05 13:14:15 +0000 UTC
	prc, _ := time.LoadLocation(carbon.X常量_时区_中国)
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置位置(prc).X取完整文本时间() // 2020-08-05 21:14:15 +0800 CST
	tokyo, _ := time.LoadLocation(carbon.X常量_时区_东京)
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置位置(tokyo).X取完整文本时间() // 2020-08-05 22:14:15 +0900 JST

	// 设置区域
	carbon.X解析文本时间("2020-07-05 13:14:15").X设置语言区域("en").X取可读格式时间差()    // 1 month ago
	carbon.X解析文本时间("2020-07-05 13:14:15").X设置语言区域("zh-CN").X取可读格式时间差() // 1 月前

	// 设置年、月、日、时、分、秒
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒(2019, 2, 2, 13, 14, 15).X取完整文本时间()  // 2019-02-02 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒(2019, 2, 31, 13, 14, 15).X取完整文本时间() // 2019-03-03 13:14:15 +0800 CST
	// 设置年、月、日、时、分、秒、毫秒
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒毫秒(2019, 2, 2, 13, 14, 15, 999).X取完整文本时间()  // 2019-02-02 13:14:15.999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒毫秒(2019, 2, 31, 13, 14, 15, 999).X取完整文本时间() // 2019-03-03 13:14:15.999 +0800 CST
	// 设置年、月、日、时、分、秒、微秒
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒微秒(2019, 2, 2, 13, 14, 15, 999999).X取完整文本时间()  // 2019-02-02 13:14:15.999999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒微秒(2019, 2, 31, 13, 14, 15, 999999).X取完整文本时间() // 2019-03-03 13:14:15.999999 +0800 CST
	// 设置年、月、日、时、分、秒、纳秒
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒纳秒(2019, 2, 2, 13, 14, 15, 999999999).X取完整文本时间()  // 2019-02-02 13:14:15.999999999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日时分秒纳秒(2019, 2, 31, 13, 14, 15, 999999999).X取完整文本时间() // 2019-03-03 13:14:15.999999999 +0800 CST

	// 设置年、月、日
	carbon.X解析文本时间("2020-01-01").X设置年月日(2019, 2, 2).X取完整文本时间()  // 2019-02-02 00:00:00 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日(2019, 2, 31).X取完整文本时间() // 2019-03-03 00:00:00 +0800 CST
	// 设置年、月、日、毫秒
	carbon.X解析文本时间("2020-01-01").X设置年月日毫秒(2019, 2, 2, 999).X取完整文本时间()  // 2019-02-02 00:00:00.999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日毫秒(2019, 2, 31, 999).X取完整文本时间() // 2019-03-03 00:00:00.999 +0800 CST
	// 设置年、月、日、微秒
	carbon.X解析文本时间("2020-01-01").X设置年月日微秒(2019, 2, 2, 999999).X取完整文本时间()  // 2019-02-02 00:00:00.999999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日微秒(2019, 2, 31, 999999).X取完整文本时间() // 2019-03-03 00:00:00.999999 +0800 CST
	// 设置年、月、日、纳秒
	carbon.X解析文本时间("2020-01-01").X设置年月日纳秒(2019, 2, 2, 999999999).X取完整文本时间()  // 2019-02-02 00:00:00.999999999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置年月日纳秒(2019, 2, 31, 999999999).X取完整文本时间() // 2019-03-03 00:00:00.999999999 +0800 CST

	// 设置时、分、秒
	carbon.X解析文本时间("2020-01-01").X设置时分秒(13, 14, 15).X取完整文本时间() // 2020-01-01 13:14:15 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置时分秒(13, 14, 90).X取完整文本时间() // 2020-01-01 13:15:30 +0800 CST
	// 设置时、分、秒、毫秒
	carbon.X解析文本时间("2020-01-01").X设置时分秒毫秒(13, 14, 15, 999).X取完整文本时间() // 2020-01-01 13:14:15.999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置时分秒毫秒(13, 14, 90, 999).X取完整文本时间() // 2020-01-01 13:15:30.999 +0800 CST
	// 设置时、分、秒、微秒
	carbon.X解析文本时间("2020-01-01").X设置时分秒微秒(13, 14, 15, 999999).X取完整文本时间() // 2020-01-01 13:14:15.999999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置时分秒微秒(13, 14, 90, 999999).X取完整文本时间() // 2020-01-01 13:15:30.999999 +0800 CST
	// 设置时、分、秒、纳秒
	carbon.X解析文本时间("2020-01-01").X设置时分秒纳秒(13, 14, 15, 999999999).X取完整文本时间() // 2020-01-01 13:14:15.999999999 +0800 CST
	carbon.X解析文本时间("2020-01-01").X设置时分秒纳秒(13, 14, 90, 999999999).X取完整文本时间() // 2020-01-01 13:15:30.999999999 +0800 CST

	// 设置年份
	carbon.X解析文本时间("2020-02-29").X设置年份(2021).X取文本日期() // 2021-03-01
	// 设置年份(月份不溢出)
	carbon.X解析文本时间("2020-02-29").X设置年份并月份不溢出(2021).X取文本日期() // 2021-02-28

	// 设置月份
	carbon.X解析文本时间("2020-01-31").X设置月份(2).X取文本日期() // 2020-03-02
	// 设置月份(月份不溢出)
	carbon.X解析文本时间("2020-01-31").X设置月份并月份不溢出(2).X取文本日期() // 2020-02-29

	// 设置一周的开始日期
	carbon.X解析文本时间("2020-08-02").X设置一周起始日期(carbon.X常量_星期_周日).X取周几() // 0
	carbon.X解析文本时间("2020-08-02").X设置一周起始日期(carbon.X常量_星期_周一).X取周几() // 6

	// 设置一周的周末日期
	wd := []carbon.X星期{
		carbon.X常量_星期_周六, carbon.X常量_星期_周日,
	}
	carbon.X解析文本时间("2025-04-11").X设置一周周末日期(wd).X是否为周末() // false
	carbon.X解析文本时间("2025-04-12").X设置一周周末日期(wd).X是否为周末() // true
	carbon.X解析文本时间("2025-04-13").X设置一周周末日期(wd).X是否为周末() // true

	// 设置日期
	carbon.X解析文本时间("2019-08-05").X设置日期(31).X取文本日期() // 2020-08-31
	carbon.X解析文本时间("2020-02-01").X设置日期(31).X取文本日期() // 2020-03-02

	// 设置小时
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置小时(10).X取文本时间() // 2020-08-05 10:14:15
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置小时(24).X取文本时间() // 2020-08-06 00:14:15

	// 设置分钟
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置分(10).X取文本时间() // 2020-08-05 13:10:15
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置分(60).X取文本时间() // 2020-08-05 14:00:15

	// 设置秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置秒(10).X取文本时间() // 2020-08-05 13:14:10
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置秒(60).X取文本时间() // 2020-08-05 13:15:00

	// 设置毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置毫秒(100).X取毫秒() // 100
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置毫秒(999).X取毫秒() // 999

	// 设置微妙
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置微秒(100000).X取微秒() // 100000
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置微秒(999999).X取微秒() // 999999

	// 设置纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置纳秒(100000000).X取纳秒() // 100000000
	carbon.X解析文本时间("2020-08-05 13:14:15").X设置纳秒(999999999).X取纳秒() // 999999999

	//-------------------------时间获取
	// 获取本年总天数
	carbon.X解析文本时间("2019-08-05 13:14:15").X取本年总天数() // 365
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本年总天数() // 366
	// 获取本月总天数
	carbon.X解析文本时间("2020-02-01 13:14:15").X取本月总天数() // 29
	carbon.X解析文本时间("2020-04-01 13:14:15").X取本月总天数() // 30
	carbon.X解析文本时间("2020-08-01 13:14:15").X取本月总天数() // 31

	// 获取本年第几天
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本年第几天() // 218
	// 获取本年第几周
	carbon.X解析文本时间("2019-12-31 13:14:15").X取本年第几周() // 1
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本年第几周() // 32
	// 获取本月第几天
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本月第几天() // 5
	// 获取本月第几周
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本月第几周() // 1
	// 获取本周第几天
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本周第几天() // 3

	// 获取当前年月日时分秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年月日时分秒() // 2020,8,5,13,14,15
	// 获取当前年月日时分秒毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年月日时分秒毫秒() // 2020,8,5,13,14,15,999
	// 获取当前年月日时分秒微秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年月日时分秒微秒() // 2020,8,5,13,14,15,999999
	// 获取当前年月日时分秒纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年月日时分秒纳秒() // 2020,8,5,13,14,15,999999999

	// 获取当前年月日
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取年月日() // 2020,8,5
	// 获取当前年月日毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取年月日毫秒() // 2020,8,5,999
	// 获取当前年月日微秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取年月日微秒() // 2020,8,5,999999
	// 获取当前年月日纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取年月日纳秒() // 2020,8,5,999999999

	// 获取当前时分秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取时分秒() // 13,14,15
	// 获取当前时分秒毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取时分秒毫秒() // 13,14,15,999
	// 获取当前时分秒微秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取时分秒微秒() // 13,14,15,999999
	// 获取当前时分秒纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取时分秒纳秒() // 13,14,15,999999999

	// 获取当前世纪
	carbon.X解析文本时间("2020-08-05 13:14:15").X取世纪() // 21
	// 获取当前年代
	carbon.X解析文本时间("2019-08-05 13:14:15").X取年代() // 10
	carbon.X解析文本时间("2021-08-05 13:14:15").X取年代() // 20
	// 获取当前年份
	carbon.X解析文本时间("2020-08-05 13:14:15").X取年() // 2020
	// 获取当前季度
	carbon.X解析文本时间("2020-08-05 13:14:15").X取季度() // 3
	// 获取当前月份
	carbon.X解析文本时间("2020-08-05 13:14:15").X取月() // 8
	// 获取当前周(从0开始)
	carbon.X解析文本时间("2020-08-02 13:14:15").X取周几()                    // 0
	carbon.X解析文本时间("2020-08-02").X设置一周起始日期(carbon.X常量_星期_周日).X取周几() // 0
	carbon.X解析文本时间("2020-08-02").X设置一周起始日期(carbon.X常量_星期_周一).X取周几() // 6
	// 获取当前天数
	carbon.X解析文本时间("2020-08-05 13:14:15").X取日() // 5
	// 获取当前小时
	carbon.X解析文本时间("2020-08-05 13:14:15").X取小时() // 13
	// 获取当前分钟
	carbon.X解析文本时间("2020-08-05 13:14:15").X取分钟() // 14
	// 获取当前秒钟
	carbon.X解析文本时间("2020-08-05 13:14:15").X取秒() // 15
	// 获取当前毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999").X取毫秒() // 999
	// 获取当前微秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999").X取微秒() // 999000
	// 获取当前纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999").X取纳秒() // 999000000

	// 获取秒精度时间戳
	carbon.X解析文本时间("2020-08-05 13:14:15").X取秒时间戳() // 1596604455
	// 获取毫秒精度时间戳
	carbon.X解析文本时间("2020-08-05 13:14:15").X取毫秒时间戳() // 1596604455000
	// 获取微秒精度时间戳
	carbon.X解析文本时间("2020-08-05 13:14:15").X取微秒时间戳() // 1596604455000000
	// 获取纳秒精度时间戳
	carbon.X解析文本时间("2020-08-05 13:14:15").X取纳秒时间戳() // 1596604455000000000

	// 获取时区位置
	carbon.X设置全局默认时区(carbon.X常量_时区_中国).X取时区位置() // PRC
	carbon.X设置全局默认时区(carbon.X常量_时区_东京).X取时区位置() // Asia/Tokyo

	// 获取时区名称
	carbon.X设置全局默认时区(carbon.X常量_时区_中国).X取时区名称() // CST
	carbon.X设置全局默认时区(carbon.X常量_时区_东京).X取时区名称() // JST

	// 获取时区偏移量，单位秒
	carbon.X设置全局默认时区(carbon.X常量_时区_中国).X取时区偏移量() // 28800
	carbon.X设置全局默认时区(carbon.X常量_时区_东京).X取时区偏移量() // 32400

	// 获取当前区域
	carbon.X创建并按当前时间().X取语言区域()               // zh-CN
	carbon.X创建并按当前时间().X设置语言区域("en").X取语言区域() // en

	// 获取当前星座
	carbon.X创建并按当前时间().X取星座()                  // 狮子座
	carbon.X创建并按当前时间().X设置语言区域("en").X取星座()    // Leo
	carbon.X创建并按当前时间().X设置语言区域("zh-CN").X取星座() // 狮子座

	// 获取当前季节
	carbon.X创建并按当前时间().X取季节()                  // 夏季
	carbon.X创建并按当前时间().X设置语言区域("en").X取季节()    // Summer
	carbon.X创建并按当前时间().X设置语言区域("zh-CN").X取季节() // 夏季

	// 获取一周的开始日期
	carbon.X设置全局默认周起始日期(carbon.X常量_星期_周日).X取周开始日期() // Sunday
	carbon.X设置全局默认周起始日期(carbon.X常量_星期_周一).X取周开始日期() // Monday

	// 获取一周的结束日期
	carbon.X设置全局默认周起始日期(carbon.X常量_星期_周日).X取周结束日期() // Saturday
	carbon.X设置全局默认周起始日期(carbon.X常量_星期_周一).X取周结束日期() // Sunday

	// 获取当前布局模板
	carbon.X解析文本时间("now").X取当前布局模板()                                // "2006-01-02 15:04:05"
	carbon.X解析时间并按模板("2020-08-05", carbon.X常量_布局模板_Date).X取当前布局模板() // "2006-01-02"

	// 获取年龄
	carbon.X解析文本时间("2002-01-01 13:14:15").X取年龄() // 17
	carbon.X解析文本时间("2002-12-31 13:14:15").X取年龄() // 18

	//-------------------------时间输出
	// 输出日期时间字符串
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文本时间() // 2020-08-05 13:14:15
	// 输出日期时间字符串，包含毫秒
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文时间并含毫秒() // 2020-08-05 13:14:15.999
	// 输出日期时间字符串，包含微秒
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文本时间并含微秒() // 2020-08-05 13:14:15.999999
	// 输出日期时间字符串，包含纳秒
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文本时间并含纳秒() // 2020-08-05 13:14:15.999999999

	// 输出简写日期时间字符串
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取简写文本时间() // 20200805131415
	// 输出简写日期时间字符串，包含毫秒
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取简写文本时间并含毫秒() // 20200805131415.999
	// 输出简写日期时间字符串，包含微秒
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取简写文本时间并含微秒() // 20200805131415.999999
	// 输出简写日期时间字符串，包含纳秒
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取简写文本时间并含纳秒() // 20200805131415.999999999

	// 输出日期字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本日期() // 2020-08-05
	// 输出日期字符串，包含毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本日期并含毫秒() // 2020-08-05.999
	// 输出日期字符串，包含微秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本日期并含微秒() // 2020-08-05.999999
	// 输出日期字符串，包含纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本日期并含纳秒() // 2020-08-05.999999999

	// 输出简写日期字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本日期() // 20200805
	// 输出简写日期字符串，包含毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本日期并含毫秒() // 20200805.999
	// 输出简写日期字符串，包含微秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本日期并含微秒() // 20200805.999999
	// 输出简写日期字符串，包含纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本日期并含纳秒() // 20200805.999999999

	// 输出时间字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时分秒() // 13:14:15
	// 输出时间字符串，包含毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时分秒毫秒() // 13:14:15.999
	// 输出时间字符串，包含微秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时分秒微秒() // 13:14:15.999999
	// 输出时间字符串，包含纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时分秒纳秒() // 13:14:15.999999999

	// 输出简写时间字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本时分秒() // 131415
	// 输出简写时间字符串，包含毫秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本时分秒毫秒() // 131415.999
	// 输出简写时间字符串，包含微秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本时分秒微秒() // 131415.999999
	// 输出简写时间字符串，包含纳秒
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取简写文本时分秒纳秒() // 131415.999999999

	// 输出 Ansic 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按ANSIC() // Wed Aug  5 13:14:15 2020
	// 输出 Atom 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按Atom() // 2020-08-05T13:14:15+08:00
	// 输出 UnixDate 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按UnixDate() // Wed Aug  5 13:14:15 CST 2020
	// 输出 RubyDate 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RubyDate() // Wed Aug 05 13:14:15 +0800 2020
	// 输出 Kitchen 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按Kitchen() // 1:14PM
	// 输出 Cookie 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按Cookie() // Wednesday, 05-Aug-2020 13:14:15 CST
	// 输出 DayDateTime 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").ToDayDateTimeString() // Wed, Aug 5, 2020 1:14 PM
	// 输出 RSS 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RSS() // Wed, 05 Aug 2020 13:14:15 +0800
	// 输出 W3C 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按W3C() // 2020-08-05T13:14:15+08:00

	// 输出 ISO8601 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601() // 2020-08-05T13:14:15+08:00
	// 输出 ISO8601Milli 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601毫秒() // 2020-08-05T13:14:15.999+08:00
	// 输出 ISO8601Micro 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601微妙() // 2020-08-05T13:14:15.999999+08:00
	// 输出 ISO8601Nano 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601纳秒() // 2020-08-05T13:14:15.999999999+08:00
	// 输出 ISO8601Zulu 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601Z() // 2020-08-05T13:14:15Z
	// 输出 ISO8601ZuluMilli 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601Z毫秒() // 2020-08-05T13:14:15.999Z
	// 输出 ISO8601ZuluMicro 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601Z微妙() // 2020-08-05T13:14:15.999999Z
	// 输出 ISO8601ZuluNano 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15.999999999").X取文本时间并按ISO8601Z纳秒() // 2020-08-05T13:14:15.999999999Z

	// 输出 RFC822 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC822() // 05 Aug 20 13:14 CST
	// 输出 RFC822Z 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC822Z() // 05 Aug 20 13:14 +0800
	// 输出 RFC850 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC850() // Wednesday, 05-Aug-20 13:14:15 CST
	// 输出 RFC1036 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC1036() // Wed, 05 Aug 20 13:14:15 +0800
	// 输出 RFC1123 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC1123() // Wed, 05 Aug 2020 13:14:15 CST
	// 输出 RFC1123Z 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC1123Z() // Wed, 05 Aug 2020 13:14:15 +0800
	// 输出 RFC2822 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC2822() // Wed, 05 Aug 2020 13:14:15 +0800
	// 输出 RFC7231 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按RFC7231() // Wed, 05 Aug 2020 13:14:15 CST

	// 输出 RFC3339 格式字符串
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文本时间并按RFC3339() // 2020-08-05T13:14:15+08:00
	// 输出 RFC3339Milli 格式字符串
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文本时间并按RFC3339毫秒() // 2020-08-05T13:14:15.999+08:00
	// 输出 RFC3339Micro 格式字符串
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文本时间并按RFC3339微秒() // 2020-08-05T13:14:15.999999+08:00
	// 输出 RFC3339Nano 格式字符串
	carbon.X解析文本时间("2020-08-05T13:14:15.999999999+08:00").X取文本时间并按RFC3339纳秒() // 2020-08-05T13:14:15.999999999+08:00

	// 输出日期时间字符串
	fmt.Printf("%s", carbon.X解析文本时间("2020-08-05 13:14:15")) // 2020-08-05 13:14:15

	// 输出"2006-01-02 15:04:05.999999999 -0700 MST"格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取完整文本时间() // 2020-08-05 13:14:15.999999 +0800 CST

	// 输出 "Jan 2, 2006" 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").ToFormattedDateString() // Aug 5, 2020
	// 输出 "Mon, Jan 2, 2006" 格式字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").ToFormattedDayDateString() // Wed, Aug 5, 2020

	// 输出指定布局的字符串
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按模板(carbon.X常量_布局模板_ISO8601)     // 2020-08-05T13:14:15+08:00
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按模板("20060102150405")            // 20200805131415
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按模板("2006年01月02日 15时04分05秒")     // 2020年08月05日 13时14分15秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按模板("It is 2006-01-02 15:04:05") // It is 2020-08-05 13:14:15

	// 输出指定格式的字符串(如果使用的字母与格式符号冲突时，请使用\符号转义该字符)
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按格式("YmdHis")                    // 20200805131415
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按格式("Y年m月d日 H时i分s秒")             // 2020年08月05日 13时14分15秒
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按格式("l jK \\o\\f F Y h:i:s A")   // Wednesday 5th of August 2020 01:14:15 PM
	carbon.X解析文本时间("2020-08-05 13:14:15").X取文本时间并按格式("\\I\\t \\i\\s Y-m-d H:i:s") // It is 2020-08-05 13:14:15

	//-------------------------星座
	// 获取星座
	carbon.X解析文本时间("2020-08-05 13:14:15").X取星座() // 狮子座

	// 是否是白羊座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为白羊座() // false
	// 是否是金牛座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为金牛座() // false
	// 是否是双子座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为双子座() // false
	// 是否是巨蟹座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为巨蟹座() // false
	// 是否是狮子座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为狮子座() // true
	// 是否是处女座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为处女座() // false
	// 是否是天秤座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为天秤座() // false
	// 是否是天蝎座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为天蝎座() // false
	// 是否是射手座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为射手座() // false
	// 是否是摩羯座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为摩羯座() // false
	// 是否是水瓶座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为水瓶座() // false
	// 是否是双鱼座
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为双鱼座() // false

	//-------------------------季节
	// 获取季节
	carbon.X解析文本时间("2020-08-05 13:14:15").X取季节() // 夏季

	// 本季节开始时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本季节开始时间().X取文本时间() // 2020-06-01 00:00:00
	// 本季节结束时间
	carbon.X解析文本时间("2020-08-05 13:14:15").X取本季节结束时间().X取文本时间() // 2020-08-31 23:59:59

	// 是否是春季
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为春季() // false
	// 是否是夏季
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为夏季() // true
	// 是否是秋季
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为秋季() // false
	// 是否是冬季
	carbon.X解析文本时间("2020-08-05 13:14:15").X是否为冬季() // false

	//-------------------------JSON
	type User struct {
		Date      *carbon.X类型_日期   `json:"date"`
		DateMilli *carbon.X类型_毫秒日期 `json:"date_milli"`
		DateMicro *carbon.X类型_微秒日期 `json:"date_micro"`
		DateNano  *carbon.X类型_纳秒日期 `json:"date_nano"`

		Time      *carbon.X类型_时间   `json:"time"`
		TimeMilli *carbon.X类型_毫秒时间 `json:"time_milli"`
		TimeMicro *carbon.X类型_微秒时间 `json:"time_micro"`
		TimeNano  *carbon.X类型_纳秒时间 `json:"time_nano"`

		DateTime      *carbon.X类型_秒日期时间  `json:"date_time"`
		DateTimeMilli *carbon.X类型_微秒时间日期 `json:"date_time_milli"`
		DateTimeMicro *carbon.X类型_毫秒时间日期 `json:"date_time_micro"`
		DateTimeNano  *carbon.X类型_纳秒日期时间 `json:"date_time_nano"`

		Timestamp      *carbon.X类型_秒时间戳  `json:"timestamp"`
		TimestampMilli *carbon.X类型_毫秒时间戳 `json:"timestamp_milli"`
		TimestampMicro *carbon.X类型_微秒时间戳 `json:"timestamp_micro"`
		TimestampNano  *carbon.X类型_纳秒时间戳 `json:"timestamp_nano"`

		CreatedAt *carbon.X类型_秒日期时间 `json:"created_at"`
		UpdatedAt *carbon.X类型_秒日期时间 `json:"updated_at"`
		DeletedAt *carbon.X类型_秒时间戳  `json:"deleted_at"`
	}

	var user User

	c := carbon.X解析文本时间("2020-08-05 13:14:15.999999999")

	user.Date = carbon.X创建日期(c)
	user.DateMilli = carbon.X创建毫秒日期(c)
	user.DateMicro = carbon.X创建微秒日期(c)
	user.DateNano = carbon.X创建纳秒日期(c)

	user.Time = carbon.X创建秒时间(c)
	user.TimeMilli = carbon.X创建毫秒时间(c)
	user.TimeMicro = carbon.X创建微秒时间(c)
	user.TimeNano = carbon.X创建纳秒时间(c)

	user.DateTime = carbon.X创建秒日期时间(c)
	user.DateTimeMilli = carbon.X创建毫秒日期时间(c)
	user.DateTimeMicro = carbon.X创建微秒日期时间(c)
	user.DateTimeNano = carbon.X创建纳秒日期时间(c)

	user.Timestamp = carbon.X创建秒时间戳(c)
	user.TimestampMilli = carbon.X创建毫秒时间戳(c)
	user.TimestampMicro = carbon.X创建微秒时间戳(c)
	user.TimestampNano = carbon.X创建纳秒时间戳(c)

	user.CreatedAt = carbon.X创建秒日期时间(c)
	user.UpdatedAt = carbon.X创建秒日期时间(c)
	user.DeletedAt = carbon.X创建秒时间戳(c)

	data, err := json.Marshal(&user)
	if err != nil {
		// 错误处理
		log.Fatal(err)
	}
	fmt.Printf("%s\n", data)
	// 输出
	/*
	   {
	     "date": "2020-08-05",
	     "date_milli": "2020-08-05.999",
	     "date_micro": "2020-08-05.999999",
	     "date_nano": "2020-08-05.999999999",
	     "time": "13:14:15",
	     "time_milli": "13:14:15.999",
	     "time_micro": "13:14:15.999999",
	     "time_nano": "13:14:15.999999999",
	     "date_time": "2020-08-05 13:14:15",
	     "date_time_milli": "2020-08-05 13:14:15.999",
	     "date_time_micro": "2020-08-05 13:14:15.999999",
	     "date_time_nano": "2020-08-05 13:14:15.999999999",
	     "timestamp": 1596633255,
	     "timestamp_milli": 1596633255999,
	     "timestamp_micro": 1596633255999999,
	     "timestamp_nano": 1596633255999999999,
	     "created_at": "2020-08-05 13:14:15",
	     "updated_at": "2020-08-05 13:14:15",
	     "deleted_at": 1596633255
	   }
	*/

	var person User
	err = json.Unmarshal(data, &person)
	if err != nil {
		// 错误处理
		log.Fatal(err)
	}

	fmt.Printf("person: %+v\n", person)
	// 输出  person: {Date:2020-08-05 DateMilli:2020-08-05.999 DateMicro:2020-08-05.999999 DateNano:2020-08-05.999999999 Time:13:14:15 TimeMilli:13:14:15.999 TimeMicro:13:14:15.999999 TimeNano:13:14:15.999999999 DateTime:2020-08-05 13:14:15 DateTimeMilli:2020-08-05 13:14:15.999 DateTimeMicro:2020-08-05 13:14:15.999999 DateTimeNano:2020-08-05 13:14:15.999999999 Timestamp:1596633255 TimestampMilli:1596633255999 TimestampMicro:1596633255999999 TimestampNano:1596633255999999999 CreatedAt:2020-08-05 13:14:15 UpdatedAt:2020-08-05 13:14:15 DeletedAt:1596633255}

	//-------------------------自定义字段类型
	//type RFC3339Type string
	//func (t RFC3339Type) Layout() string {
	//  return carbon.RFC3339Layout
	//}
	//
	//type ISO8601Type string
	//func (t ISO8601Type) Format() string {
	//  return carbon.ISO8601Format
	//}
	//
	//type User struct {
	//  Customer1 *carbon.LayoutType[RFC3339Type] `json:"customer1"`
	//  Customer2 *carbon.FormatType[ISO8601Type] `json:"customer2"`
	//}
	//
	//var user User
	//
	//c := carbon.Parse("2020-08-05 13:14:15")
	//
	//user.Customer1 = carbon.NewLayoutType[RFC3339Type](c)
	//user.Customer2 = carbon.NewFormatType[ISO8601Type](c)
	//
	//data, err := json.Marshal(&user)
	//if err != nil {
	//  // 错误处理
	//  //log.Fatal(err)
	//}
	//fmt.Printf("%s\n", data)
	//// 输出 {"customer1":"2020-08-05T13:14:15Z", "customer2":"2020-08-05T13:14:15+00:00"}
	//
	//var person User
	//err := json.Unmarshal(data, &person)
	//if err != nil {
	//  // 错误处理
	//  log.Fatal(err)
	//}
	//
	//fmt.Printf("person: %+v\n", person)
	// 输出  person: {Customer1:2020-08-05T13:14:15Z Customer2:2020-08-05T13:14:15+00:00}

	//-------------------------设置区域
	lang := carbon.X创建语言()
	lang.X设置区域("zh-CN")

	carbon.X设置测试时间(carbon.X解析文本时间("2020-08-05 13:14:15"))
	now = carbon.X创建并按当前时间().X设置语言对象(lang)

	now.X取副本().X增加N小时(1).X取可读格式时间差() // 1 小时后
	now.X取副本().X增加N小时(1).X取完整月份()    // 八月
	now.X取副本().X增加N小时(1).X取完整月份并简写() // 8月
	now.X取副本().X增加N小时(1).X取完整星期()    // 星期二
	now.X取副本().X增加N小时(1).X取完整星期并简写() // 周二
	now.X取副本().X增加N小时(1).X取星座()      // 狮子座
	now.X取副本().X增加N小时(1).X取季节()      // 夏季

	//-------------------------重写部分翻译资源(其余仍然按照指定的 locale 文件内容翻译)
	lang = carbon.X创建语言()

	resources := map[string]string{
		"hour": "%dh",
	}
	lang.X设置区域("en").X设置资源(resources)

	carbon.X设置测试时间(carbon.X解析文本时间("2020-08-05 13:14:15"))
	now = carbon.X创建并按当前时间().X设置语言对象(lang)

	now.X取副本().X增加N年(1).X取可读格式时间差()  // 1 year from now
	now.X取副本().X增加N小时(1).X取可读格式时间差() // 1h from now
	now.X取副本().X取完整月份()              // August
	now.X取副本().X取完整月份并简写()           // Aug
	now.X取副本().X取完整星期()              // Tuesday
	now.X取副本().X取完整星期并简写()           // Tue
	now.X取副本().X取星座()                // Leo
	now.X取副本().X取季节()                // Summer

	//-------------------------重写全部翻译资源(无需指定 locale)
	lang = carbon.X创建语言()
	resources = map[string]string{
		"months":         "january|february|march|april|may|june|july|august|september|october|november|december",
		"short_months":   "jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec",
		"weeks":          "sunday|monday|tuesday|wednesday|thursday|friday|saturday",
		"short_weeks":    "sun|mon|tue|wed|thu|fri|sat",
		"seasons":        "spring|summer|autumn|winter",
		"constellations": "aries|taurus|gemini|cancer|leo|virgo|libra|scorpio|sagittarius|capricornus|aquarius|pisce",
		"year":           "1 yr|%d yrs",
		"month":          "1 mo|%d mos",
		"week":           "%dw",
		"day":            "%dd",
		"hour":           "%dh",
		"minute":         "%dm",
		"second":         "%ds",
		"now":            "just now",
		"ago":            "%s ago",
		"from_now":       "in %s",
		"before":         "%s before",
		"after":          "%s after",
	}
	lang.X设置资源(resources)

	carbon.X设置测试时间(carbon.X解析文本时间("2020-08-05 13:14:15"))
	now = carbon.X创建并按当前时间().X设置语言对象(lang)

	now.X取副本().X增加N年(1).X取可读格式时间差()  // in 1 yr
	now.X取副本().X增加N小时(1).X取可读格式时间差() // in 1h
	now.X取副本().X取完整月份()              // august
	now.X取副本().X取完整月份并简写()           // aug
	now.X取副本().X取完整星期()              // tuesday
	now.X取副本().X取完整星期并简写()           // tue
	now.X取副本().X取星座()                // leo
	now.X取副本().X取季节()                // summer

	//-------------------------错误处理
	c = carbon.X解析文本时间("2020-08-05").X设置时区("xxx")
	if c.X是否有错误() {
		// 错误处理
		log.Fatal(c.X错误)
	}
	// 输出 timezone "xxx" is invalid, please see the file "$GOROOT/lib/time/zoneinfo.zip" for all valid timezones
}
